// 内置，进行文件操作模块
const path = require('path')
const os = require('os')
const fs = require('fs')
const pfs = require('fs').promises

// 指定文件路径
// const filepath = path.resolve('./data/user.txt');

// 读取文件中的内容 异步，回调  推荐
/* fs.readFile(filepath, (err, buffer) => {
  if (!err) {
    // 读取文件成功
    console.log(buffer.toString());
  } else {
    console.log('失败');
  }
}) */

// primise方法完成数据的读取
// readFile(filepath).then(res => console.log(res))
// pfs.readFile(filepath,'utf-8').then(res => console.log(res))

/* ; (async function (filepath) {
  let res = await readFile(filepath)
  console.log('===', res);
})(filepath)
 */



// 同步
// console.log(fs.readFileSync(filepath, 'utf-8'));

/* function readFile(filepath) {
  return new Promise((resolve, reject) => {
    fs.readFile(filepath, 'utf-8', (err, data) => {
      if (!err) {
        // 读取文件成功
        resolve(data)
      } else {
        reject(err)
      }
    })
  })
} */

// const filepath = path.resolve('./data/user.txt');

// 覆盖写入,如果文件不存在则创建加写入，如果存在则覆盖
/* fs.writeFile(filepath, 'abc', err => {
  console.log(err);
}) */

// 追加
/* fs.writeFile(filepath, 'abc' + os.EOL, {
  // w 覆盖
  // r 读取
  // a 追加
  flag: 'a'
}, err => {
  console.log(err);
}) */
/* fs.appendFile(filepath, 'abc' + os.EOL, err => {
  console.log(err);
}) */

// 删除操作
// mac sudo chmod -R 777 目录
// fs.unlink(filepath, () => { })

/* const filepath = path.resolve('./data/user.json');
// 判断一个文件是否存在 => web服务器，如果你访问的文件不存在 404
// console.log(fs.existsSync(filepath));

// 查看当前文档信息
fs.stat(filepath, (err, stat) => {

  // 文档类型，目录(文件夹)还是文件
  console.log(stat.isDirectory());
  console.log(stat.isFile())
  // 文件修改时间
  console.log(stat.mtime);
  // 文件大小 字节
  console.log(stat.size);
})
 */

/*
const filepath = path.resolve('./data');
// 读目录
fs.readdir(filepath, (err, files) => {
  files.forEach(file => {
    fs.stat(path.join(filepath, file), (err, stat) => {
      if (stat.isFile()) {
        console.log(path.join(filepath, file) + ' == 文件');
      } else {
        console.log(path.join(filepath, file) + '==目录');
      }
    })
  })
})
 */

const filepath = path.resolve('./data/a');

// 删除目录 空目录 recursive 递归删除
fs.rmdirSync(filepath, { recursive: true })


